﻿// See https://aka.ms/new-console-template for more information
using Dot.Js;
using JavaScriptEngineSwitcher.Core;
using JavaScriptEngineSwitcher.Jint;


//using JavaScriptEngineSwitcher.Jint;
using Jint;
using System.Reflection;
using System.Text;

Console.WriteLine("Hello, World!");
// 设置默认引擎名称

//// 创建 JsEngine 实例
//IJsEngine jsEngine = JsEngineSwitcher.Current.CreateDefaultEngine();
//// dot.js 模板
//string dotJsTemplate = "var result = doT.template('Hello {{=it.name}}!');";
//jsEngine.Execute(dotJsTemplate);


//// 准备数据
//var data = new { name = "World" };
//// 将数据传递给 JavaScript 引擎
//jsEngine.SetVariableValue("it", data);
//// 执行模板替换
//jsEngine.Execute("var output = result(it);");
//// 获取替换后的结果
//string output = jsEngine.GetVariableValue<string>("output");
//Console.WriteLine(output);




//// 创建 Jint 引擎实例
//var engine = new JintJsEngine();

//// 读取 doT 模板文件内容
//string dotTemplate = File.ReadAllText("template.dot");

//// 读取外部 JavaScript 文件内容
//string externalJsCode = File.ReadAllText("doT.js");
//try
//{
//    // 执行外部 JavaScript 代码
//    engine.Execute(externalJsCode);
//    // 执行 doT 模板代码
//    engine.Execute("var template = doT.template('" + dotTemplate + "');");

//    // 调用 doT 模板并传递数据
//    engine.Execute("var output = template({'name':'Hello world' });");
//    string output = engine.GetVariableValue<string>("output");
//    // 输出结果
//    Console.WriteLine(output);
//}
//catch (Exception ex)
//{
//    Console.WriteLine($"Error executing JavaScript: {ex.Message}");
//}


{

    new TemplateEngine().Demo2();
}